Task: Analyze Domains
It involves to analyze characteristics which indicate the potential domains for product line.
Disciplines: Domain Scoping
Purpose
Determine the domains which have more potential for product line.
Relationships
Main Description

The term domain analysis was first introduced by Neighbors (1980) as “the activity of identifying the objects and operations of a class of similar systems in a particular problem domain.” A domain is a set of current and future applications which share a set of common capabilities and data (Kang et. al., 1990).

 

In the RiPLE-SC, the task analyze domains is performed in a workshop. The domain analysis workshop proposed in the RiPLE-SC makes possible the communication face-to-face and the collaborative work among business and technical people. It has as goal to identify the domains and sub-domains more relevant for the product line. In additional, this analysis requires a clear understanding on the domains, because the agility can be negatively influenced when the stakeholders do not have experience with them. Therefore, before the beginning of the workshop, the participants should explore information on the domains which will be analyzed. These information can be obtained from: project plans, user manuals, modeling, data dictionary, existing applications and knowledge from domain experts.

Steps
Review Domains

In the step review domains the objective is to discuss about general characteristics of the domains making possible to align the knowledge of the stakeholders regarding them. Each domain is reviewed in pre-determined timeboxes. The timeboxes are time interval which cannot be exceeded, with them is possible to limit the time of the analysis and maintain the focus on the workshop. In the review, the stakeholders should express their understanding on the domains, enabling to identify new domains, exclude existent domains or maintain the initial set of domains.

Identify Sub-Domains

After the discussion on the domains, the participants of the workshop identify the sub-domains associated to each domain. The concept of dividing a big problem in minor parts can also be applicable in software reuse.

Analyze Sub-Domains

In the step analyze sub-domains, timeboxes are also used to limit the time of analysis of each sub-domain. In this analysis the following aspects are considered:

1. experience,it indicates the level of knowledge that the participants of the workshop have on the sub-domain. This level can be: a. high, the participants have fully understanding and some stakeholders participated of projects related with the sub-domain; b. partial, the sub-domain is knowledge, but the understanding is partial; c. low, the participants do not know the sub-domain.

2. risks, they are identified and analyzed to determine the negative impact that has to the sub-domain. In the analysis, the risks are prioritized according with the perceptions of the team about the severity of the risk. The impact of the risks can be: a. high, possible problems will happen and will be difficult to manage; b. relevant, possible problems can be expected, however, they can be managed; c. low, there are not apparent problems. 

3. volatility, it determines if the sub-domain very change with the time. The volatility can be: a. high, constants changes occur in the sub-domain; b. medium, possible changes can be expected, but, they do not big impacts; c. low, few changes can occur.

4. maturity, it determines if the sub-domain is stable. The maturity can be: a. high, the participants have fully understanding, materials about the domain are of easy access and some stakeholders participate of projects related with the sub-domain;  b. partial, the sub-domain is knowledge, but the understanding is partial and the access the information about it is more difficult; c. low, the participants do not know the sub-domain. No background theory exists. 

5. existent code, it facilitates the understanding of the sub-domain and help in the development. The potential of the code can be: a. high, is an interesting basis of information and has potential to be reused; b. relevant, some costs are associated in make it reusable; c. low, the code does not get benefits to the project.

Prioritize Domains and Sub-Domains

The final step of the workshop is the prioritization of domains and sub-domains. In it, the domains in which the sub-domains presented more potential according to the analysis have more chances of integrating the product line. This decision is also influenced by the objectives and interests defined by the customers in the task of pre-scoping meeting.